Roles, Stacks, Histories: A Triple for Hoare
نویسندگان
چکیده
Behavioural type and effect systems regulate properties such as adherence to object and communication protocols, dynamic security policies, avoidance of race conditions, and many others. Typically, each system is based on some specific syntax of constraints, and is checked with an ad hoc solver. Instead, we advocate types refined with first-order logic formulas as a basis for behavioural type systems, and general purpose automated theorem provers as an effective means of checking programs. To illustrate this approach, we define a triple of security-related type systems: for role-based access control, for stack inspection, and for history-based access control. The three are all instances of a refined state monad. Our semantics allows a precise comparison of the similarities and differences of these mechanisms. In our examples, the benefit of behavioural type-checking is to rule out the possibility of unexpected security exceptions, a common problem with code-based access control.
منابع مشابه
Unifying Refinement and Hoare-Style Reasoning in a Logic for Higher-Order Concurrency (Technical Appendix)
ing stacks to bags We want to show Bag(stacks ). Λ. Prop context: Variables: p, q ∀x. TokPure(p(x)) ∧ (p(x)⇒ q(x)) {True} let hds = new (none) {s ↪→i none} {Repp(hds)} let sync = mkSync() {sync ∈ Syncer(Repp(hds))}
متن کاملTransforming Proof Tableaux of Hoare Logic into Inference Sequences of Rewriting Induction
A proof tableau of Hoare logic is an annotated program with preand post-conditions, which corresponds to an inference tree of Hoare logic. In this paper, we show that a proof tableau for partial correctness can be transformed into an inference sequence of rewriting induction for constrained rewriting. We also show that the resulting sequence is a valid proof for an inductive theorem correspondi...
متن کاملSpecifying and Verifying Concurrent Algorithms with Histories and Subjectivity
We present a lightweight approach to Hoare-style specifications for fine-grained concurrency, based on a notion of time-stamped histories that abstractly capture atomic changes in the program state. Our key observation is that histories form a partial commutative monoid, a structure fundamental for representation of concurrent resources. This insight provides us with a unifying mechanism that a...
متن کاملSimulation of Specification Statements in Hoare Logic
Data refinement is a powerful technique to derive implementations in terms of low-level data structures like bytes from specification in terms of highlevel data structures like queues. The higher level operations need not be coded as ordinary programs; it is more convenient to introduce specification statements to the programming language and use them instead of actual code. Specification state...
متن کاملA Hoare Logic for Concurrent Objects with Asynchronous Method Calls
The Creol language proposes high level language constructs to unite object orientation and distribution in a natural way. In this report, we show how the semantics of Creol programs may be defined in terms of standard sequential constructs. The highly nondeterministic nature of distributed systems is captured by introducing communication histories to record the observable activity of the system...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- J. Funct. Program.
دوره 21 شماره
صفحات -
تاریخ انتشار 2010